using System;
using System.Collections.Generic;
using System.Text;

namespace RNChessBoard.RNChessRulesEngine.TestFixtures
{
    /// <summary>
    /// This class defines custom arrays for black pawn opening moves.
    /// </summary>
    /// <remarks>
    /// The strings for each move are structured in the following manner:
    /// "{white from}-{white to}/{white result}/{white move type}/
    /// {black from}-{black to}/{black result}/{black move type}"
    /// 
    /// To indicate the end of a game, ie. no more moves, the to/from string
    /// for either side may be replaced with "EOG", representing End Of Game.
    /// 
    /// {result} has the following expected values:
    /// "": Legal move, no immediate consequence
    /// "!": Illegal move
    /// "+": Move has placed opponent in check
    /// "++": Move has placed opponent in check mate
    /// 
    /// {move type} has the following expected values:
    /// "x": Capture
    /// "nc": Non-capturing move
    /// "O-O": King-side castle
    /// "O-O-O": Queen-side castle
    /// "xep": En-passant capture
    /// "!": Illegal move
    /// "^": Pawn promotion
    /// </remarks>
    public class BlackPawnTestMoves
    {
        /// <summary>
        /// Replay of standard black pawn openings made in response to white's
        /// queen's pawn opening from rank 7 to rank 6 and rank 5.
        /// </summary>
        public static string[][] BlackPawnOpenings_Rank6_Rank5_Legal = new string[][]
            {
                new string[] { "C2-C4//nc/A7-A6//nc" },
                new string[] { "C2-C4//nc/A7-A5//nc" },
                new string[] { "C2-C4//nc/B7-B6//nc" },
                new string[] { "C2-C4//nc/B7-B5//nc" },
                new string[] { "C2-C4//nc/C7-C6//nc" },
                new string[] { "C2-C4//nc/C7-C5//nc" },
                new string[] { "C2-C4//nc/D7-D6//nc" },
                new string[] { "C2-C4//nc/D7-D5//nc" },
                new string[] { "C2-C4//nc/E7-E6//nc" },
                new string[] { "C2-C4//nc/E7-E5//nc" },
                new string[] { "C2-C4//nc/F7-F6//nc" },
                new string[] { "C2-C4//nc/F7-F5//nc" },
                new string[] { "C2-C4//nc/G7-G6//nc" },
                new string[] { "C2-C4//nc/G7-G5//nc" },
                new string[] { "C2-C4//nc/H7-H6//nc" },
                new string[] { "C2-C4//nc/H7-H5//nc" }
            };
    }
}
